import { BasicColumn } from '/@/components/Table';
import { FormSchema } from '/@/components/Table';
import { rules } from '/@/utils/helper/validator';
import { render } from '/@/utils/common/renderUtils';
import { ref, reactive } from 'vue';
import { useUserStore } from '/@/store/modules/user';
const userStore = useUserStore();

//列表数据
export const columns: BasicColumn[] = [
  {
    title: '主键',
    align: 'center',
    dataIndex: 'id',
    ifShow: false,
  },
  {
    title: '班组编码',
    align: 'center',
    dataIndex: 'orgCode',
    ifShow: false,
  },
  {
    title: '班组名称',
    align: 'center',
    dataIndex: 'orgName',
  },
  {
    title: '模板名称',
    align: 'center',
    dataIndex: 'templateName',
  },
  {
    title: '模板类型',
    align: 'center',
    dataIndex: 'type',
    customRender: ({ text }) => {
      return text ? (text === 1 ? '月度模板' : text === 2 ? '季度模板' : text === 3 ? '年度模板' : '') : '';
    },
  },
  {
    title: '模板编码',
    align: 'center',
    dataIndex: 'templateCode',
    ifShow: false,
  },
  {
    title: '描述',
    align: 'center',
    dataIndex: 'description',
  },
  {
    title: '排序',
    align: 'center',
    dataIndex: 'displayOrder',
  },
  //  {
  //   title: '创建人',
  //   align:"center",
  //   dataIndex: 'sysCreatorId'
  //  },
  //  {
  //   title: '创建日期',
  //   align:"center",
  //   dataIndex: 'sysCreateDate',
  //   customRender:({text}) =>{
  //     return !text?"":(text.length>10?text.substr(0,10):text)
  //   },
  //  },
  //  {
  //   title: '修改人',
  //   align:"center",
  //   dataIndex: 'sysUpdatorId'
  //  },
  //  {
  //   title: '修改日期',
  //   align:"center",
  //   dataIndex: 'sysUpdateDate',
  //   customRender:({text}) =>{
  //     return !text?"":(text.length>10?text.substr(0,10):text)
  //   },
  //  },
  //  {
  //   title: '是否删除 false-否 true-是',
  //   align:"center",
  //   dataIndex: 'isDelete'
  //  },
];
export const searchFormSchema: FormSchema[] = [
  {
    field: 'orgCode',
    component: 'Select',
    label: '班组1',
    componentProps: {
      options: userStore.getTeamList,
    },
    defaultValue: userStore.getOrgCode,
    colProps: {span: 8,},
  },
  {
    field: 'templateName',
    label: '模板名称',
    component: 'Input',
    colProps: { span: 8 },
  },
];
//表单数据
export const formSchema: FormSchema[] = [
  // {
  //   label: '主键',
  //   field: 'id',
  //   component: 'Input',
  //   dynamicRules: ({model,schema}) => {
  //         return [
  //                { required: true, message: '请输入主键!'},
  //         ];
  //    },
  // },
  {
    label: '班组编码',
    field: 'orgCode',
    component: 'Input',
    required: true,
    dynamicDisabled: () => {
      return true;
    },
    show: false,
  },
  {
    label: '班组名称',
    field: 'orgName',
    component: 'Input',
    required: true,
    dynamicDisabled: () => {
      return true;
    },
  },
  {
    label: '模板名称',
    field: 'templateName',
    component: 'Input',
    required: true,
  },
  {
    label: '模板类型',
    field: 'type',
    component: 'Select',
    required: true,
    componentProps: {
      options: [
        {
          label: '月度模板',
          value: 1,
        },
        {
          label: '季度模板',
          value: 2,
        },
        {
          label: '年度模板',
          value: 3,
        },
      ],
    },
  },
  {
    label: '模板编码',
    field: 'templateCode',
    component: 'Input',
    show: false,
  },
  {
    label: '描述',
    field: 'description',
    component: 'InputTextArea',
    componentProps: {
      maxlength: 50,
      showCount: true,
    },
  },
  {
    label: '排序',
    field: 'displayOrder',
    component: 'InputNumber',
  },
  // {
  //   label: '创建人',
  //   field: 'sysCreatorId',
  //   component: 'Input',
  // },
  // {
  //   label: '创建日期',
  //   field: 'sysCreateDate',
  //   component: 'DatePicker',
  // },
  // {
  //   label: '修改人',
  //   field: 'sysUpdatorId',
  //   component: 'Input',
  // },
  // {
  //   label: '修改日期',
  //   field: 'sysUpdateDate',
  //   component: 'DatePicker',
  // },
  // {
  //   label: '是否删除 false-否 true-是',
  //   field: 'isDelete',
  //   component: 'Input',
  //   dynamicRules: ({model,schema}) => {
  //         return [
  //                { required: true, message: '请输入是否删除 false-否 true-是!'},
  //         ];
  //    },
  // },
  // TODO 主键隐藏字段，目前写死为ID
  {
    label: '',
    field: 'id',
    component: 'Input',
    show: false,
  },
];

export const configTableColumns: BasicColumn[] = [
  {
    title: '存储字段',
    align: 'center',
    dataIndex: 'saveCode',
  },
  {
    title: '字段名称',
    align: 'center',
    dataIndex: 'saveName',
    editComponent: 'Input',
    editRow: true,
  },
  {
    title: '是否启用',
    align: 'center',
    dataIndex: 'isOpen',
    editComponent: 'Switch',
    editRow: true,
    customRender: ({ text }) => {
      return 'true' === text ? '是' : '否';
    },
  },
  {
    title: '排序',
    align: 'center',
    dataIndex: 'displayOrder',
    editComponent: 'Input',
    editRow: true,
  },
];

/**
 * 流程表单调用这个方法获取formSchema
 * @param param
 */
export function getBpmFormSchema(_formData): FormSchema[] {
  // 默认和原始表单保持一致 如果流程中配置了权限数据，这里需要单独处理formSchema
  return formSchema;
}
